
# 操场上100多人排队，三人一组多1人，四人一组多2人，五人一组多3人，共多少人？
# n1=100
# while  n1<200:
#     if n1%3==1 and n1%4==2 and n1%5==3:
#         print(n1)
#     n1+=1


# 4.从1到500所有自然数中不含数字4的自然数共有多少个？
# 4
# X4  4X
# X4  4X   4XX
# n2=219
# ge= n2 //1 %10
# shi= n2//10%10
# bai=n2//100%10
# n4=1
# count=0 #默认不含数字4个数是0
# while n4<=500:
#     ge = n4 // 1 % 10
#     shi = n4 // 10 % 10
#     bai = n4 // 100 % 10
#     if ge!=4 and   bai!=4 and  shi!=4:
#        count+=1
#     n4+=1
# 5.1+2-3+4-5+6-7....+100的结果
# sum1=1   # 1不参与后续的计算
# n5=2
# while n5<=100:
#     if n5%2==0:
#         sum1+=n5
#     else:
#         sum1-=n5
#     n5+=1
# print(sum1)












# 2-3+4-5+6-7....+100   2+4+6+8+..+100... -3-5-7-9-...-99 +1
# 6.编写一个程序，求出200到300之间的数，且满足条件：它们三个数字之积为42，三个数字之和为12。
# n6=200   # 237    273
# while n6<=300:
#     ge = n6 % 10
#     shi = n6 // 10 % 10
#     bai = n6 // 100 % 10
#     if ge+shi+bai==12 and   ge*shi*bai==42:
#         print(n6)
#     n6+=1




# 8.有一个两位数，如果在它的前面添一个3，可得到一个三位数；
# 把3添在它的后面，也可以得到一个三位数。这两个三位数相差468，求原来的两位数。
# n8=10
# while n8<=99:
#     # if abs(300+n8 - (n8*10+3))==468:
#     if 300+n8 - (n8*10+3)==468 or (n8*10+3)- (300+n8)==468:
#         print(n8)

# 9.在控制台打印0~100之间不以5结尾的数
# n9=0
# while n9<=100:
#     if n9 %10!=5:
#         print(n9)
#     n9+=1




# 10.打印出1000以内所有的"水仙花数"，所谓"水仙花数"是指一个三位数，
# 其各位数字立方和等于该数本身。例如：153 是一个"水仙花数"，
# 因为 153=1 的三次方＋5 的三次方＋3 的三次方
# n10=100
# while n10<=1000:
#     ge = n10 % 10
#     shi = n10 // 10 % 10
#     bai = n10 // 100 % 10
#     if ge**3 +bai**3+shi**3==n10:
#         print(n10)
#     n10+=1
# 11.求18-28+38-48+......+978-988的值
# n11=18
# sum11=0
# # print(978//10)
# while n11<=988:
#     if n11 //10 %2==0:
#         sum11-=n11
#     else:
#         sum11+=n11
#     n11+=10
# print(sum11)

# 12.在控制台打印0~100，但不包含以5结尾和以8结尾的数

# n12=0
# while n12<=100:
#     if n12 %10!=5 and n12 %10!=8:
#         print(n12)
#     n12+=1
# print(n12)
#
# # 14.输出1~1000之间以8结尾且能被3整除的数有多少个
# n14=0
# count14=0
# while n14<=1000:
#     if n14 %10==8 and n14 %3==0:
#         count14+=1
#     n14+=1
# print(n14)
#
# # 15.输出对称的三位数有哪些？对称数比如：121,131,111,212...
# n15=100
# while n15<=999:
#     ge = n15 % 10
#     bai = n15 // 100 % 10
#     if ge==bai:
#         print(n15)
#     n15+=1




# 16.输出10000以内个位数不为1，十位数不为2，百位数不为3，千位数不为4的数


# 7.任意输入一个整数（小于10位），求这个整数有多少位  （不能使用len()方法）
# 13.输入一个正整数，将该数的各位左右反转输出，即输入123，输出321。
num=123456789
count=0    #统计位数
while num>0:   #这个数只需要大于0
    ge=num%10   #没循序一次,求这个数的个位
    print(ge,end="")  #不换行输出
    count+=1 #每循环一次 位数+1
    num//=10  #每循环一次把个位舍去
print()
print(f"位数{count}")
num1=123456789
print("使用len()写法",len(str(num1)))
print("倒序写法","".join(list(reversed(str(num1)))))







